Paul Eggert [Tue, 21 Mar 2023 21:06:27 +0000 (14:06 -0700)]
Avoid backwards clock in movemail timestamps
* lib-src/movemail.c (mbx_delimit_begin): Use ‘current_timespec’
instead of ‘time’ to generate the user-visible timestamp.
This works around the minor glitch caused by glibc bug 30200
<https://sourceware.org/bugzilla/show_bug.cgi?id=30200>.
Michael Albinus [Tue, 21 Mar 2023 20:24:13 +0000 (21:24 +0100)]
Invert variable alias declaration in Tramp
* lisp/net/tramp-sh.el (tramp-use-ssh-controlmaster-options):
Invert alias declaration. (Bug#62295, Bug#62329)
João Távora [Tue, 21 Mar 2023 18:43:58 +0000 (18:43 +0000)]
Skip Eglot test if using very old clangd
* test/lisp/progmodes/eglot-tests.el (eglot--clangd-version): New
helper.
(eglot-test-diagnostic-tags-unnecessary-code): Use it.
Michael Albinus [Tue, 21 Mar 2023 15:14:40 +0000 (16:14 +0100)]
Improve Tramp backward compatibility
* lisp/net/tramp-gvfs.el (while-no-input-ignore-events):
Add `dbus-event' for older Emacs versions.
Stefan Kangas [Mon, 20 Mar 2023 05:30:40 +0000 (06:30 +0100)]
Merge from origin/emacs-29
b7f03333551 Improve warning about changing the string returned by sym...
e62f8b0239d Fix visiting XBM/XPM files when 'c-ts-mode' is active
94d1c81cf07 * lisp/mpc.el (mpc-format): Fix oversight in commit 48b6c...
a4d97811ed4 Bail early from eglot--apply-text-edits if nothing to do
61d571760b3 ; Clarify in-code commentary of eglot--after-change
5bbbd70f56e Improve ergonomics of Eglot's inlay hints
c3a543123ab Protect against too large size of 'recent-keys' vector
231190b37f8 * lisp/net/tramp.el (tramp-yn-prompt-regexp): Fix regexp.
0bebd0e5f09 ; Remove 'build-module' and 'html-manual' directories fro...
6674c362ad9 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
829e5dfabea Update to Org 9.6.1-48-g92471e
e84f878e19a ; * admin/notes/tree-sitter/starter-guide: Update starter...
ea0949853f8 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
11592bcfda6 ; * lisp/nxml/xmltok.el (xmltok-scan-attributes): Fix las...
e388a77cf0b ; Minor copyedits of recent changes in ELisp reference ma...
33a26703689 ; Minor fixes in recent Eglot changes
d2cf1386fa4 ; * doc/misc/eglot.texi (Eglot Commands): Improve indexing.
b75e489362b ; Again correct node reference casing in doc/misc/eglot.texi
a55d2edc5a9 ; Remove overly verbose commentary
22a70451f34 Merge confusing duplicate sections on commands in Eglot m...
3293f939882 Don't take over mouse-1 binding on Eglot diagnostics (bug...
013057e3512 ; Prefer "language server" to "LSP server" in Eglot manual
94a21c88647 * lisp/progmodes/eglot.el (eglot--connect): Improve Tramp...
0eddfa28ebd Avoid slowdowns in xmltok-scan-attributes
647c6bf2a6c ; * test/lisp/abbrev-tests.el (abbrev--possibly-save-test...
531f8f7103a ; * admin/git-bisect-start: Update failing commits
# Conflicts:
# admin/notes/tree-sitter/build-module/batch.sh
# admin/notes/tree-sitter/build-module/build.sh
Stefan Kangas [Mon, 20 Mar 2023 05:30:39 +0000 (06:30 +0100)]
; Merge from origin/emacs-29
The following commits were skipped:
147773a1ef2 CC Mode: Eliminate duplicate function c-list-of-strings
f77ea400db0 CC Mode: Allow lists of strings as safe values for *-font...
Stefan Kangas [Mon, 20 Mar 2023 05:30:39 +0000 (06:30 +0100)]
Merge from origin/emacs-29
aedb9e3ec37 Add tests for Bug#62207
faee8d50738 ; Fix 'make-obsolete-variable' forms
Stefan Kangas [Mon, 20 Mar 2023 05:30:39 +0000 (06:30 +0100)]
; Merge from origin/emacs-29
The following commit was skipped:
f0b4ebbaf62 Fix 'find-ls-option-default-ls' for BSD/MacOS (bug#62096)
Stefan Kangas [Mon, 20 Mar 2023 05:30:32 +0000 (06:30 +0100)]
Merge from origin/emacs-29
ea87c54f359 ; * lisp/subr.el (setq-local): Add missing period (bug#62...
90362f87d58 ; Correct last commit, downcase node reference
38067f05b92 Enhance section about troubleshooting in Eglot manual.
6f82596b490 Fix Eglot's snippet insertion to follow the manual
c54bda15e35 Reset abbrevs-changed after saving abbrevs (bug#62208)
e8cee15f780 ; Fix markup in previous change
e4a7d0cd6ea Document `keymap-unset' in lispref
bb3e0ded9eb Don't add a key binding when REMOVE is non-nil
a4a9ffdd80a Fix the documentation of various aspects of adding Xref h...
a2222b9a9bf ; Minor wording fix in ELisp reference manual
5cf1de683b2 Fix python-fill-paragraph problems on filling strings (bu...
7385c991dff Also exempt eglot-inlay-hints-mode from desktop.el's fumb...
1961bdb52ed ; Add WebDAV entry to index in Tramp manual
dfb36d36230 Refer to EWW instead of w3 and w3m
9d3fdf7e0d4 Fix Eglot's command generation for code actions
# Conflicts:
# etc/NEWS
Stefan Kangas [Mon, 20 Mar 2023 05:30:30 +0000 (06:30 +0100)]
; Merge from origin/emacs-29
The following commit was skipped:
e10144c1568 Emphasize emacs-29-specificity in this version of lisp/pr...
Stefan Kangas [Mon, 20 Mar 2023 05:30:30 +0000 (06:30 +0100)]
Merge from origin/emacs-29
028f1102738 Fix quoting of font-family in 'hfy-family'
4cb8a850b08 ; Tweak doc/misc/eglot.texi
d5d4959ed7d Document how to construct JSONRPC arrays in Eglot manual
078cf512eef * test/infra/Dockerfile.emba: Use debian:bullseye.
61adb44318a * configure.ac: Fix native comp compatibility check (bug#...
d814c249f44 * test/infra/Dockerfile.emba: Install clangd.
27edd7f88cb Remove 'package-vc--query-spec'
39fea115515 Do not store :lisp-dir in package descriptors
168165178f3 Use 'package-vc-selected-packages' to store package specs
Stefan Kangas [Mon, 20 Mar 2023 05:30:30 +0000 (06:30 +0100)]
; Merge from origin/emacs-29
The following commit was skipped:
d3ad6c5e161 ; Auto-commit of loaddefs files.
Gregory Heytings [Sat, 18 Mar 2023 22:41:33 +0000 (22:41 +0000)]
Improve warning about changing the string returned by symbol-name
* src/data.c (Fsymbol_name): Add warning. See bug#62009.
* doc/lispref/symbols.texi (Creating Symbols): Improve warning.
Eli Zaretskii [Sun, 19 Mar 2023 20:19:52 +0000 (22:19 +0200)]
Fix visiting XBM/XPM files when 'c-ts-mode' is active
* lisp/progmodes/c-ts-mode.el (treesit-ready-p): Fix association
for XBM/XPM files in 'auto-mode-alist'. (Bug#62276)
Stefan Monnier [Sun, 19 Mar 2023 20:02:52 +0000 (16:02 -0400)]
* lisp/mpc.el (mpc-format): Fix oversight in commit
48b6cec61cf
João Távora [Sun, 19 Mar 2023 19:44:31 +0000 (19:44 +0000)]
Bail early from eglot--apply-text-edits if nothing to do
* lisp/progmodes/eglot.el (eglot--apply-text-edits): Early return.
João Távora [Sun, 19 Mar 2023 01:03:47 +0000 (01:03 +0000)]
; Clarify in-code commentary of eglot--after-change
* lisp/progmodes/eglot.el (eglot--after-change): Minor
clarification to commentary.
João Távora [Sun, 19 Mar 2023 00:47:55 +0000 (00:47 +0000)]
Improve ergonomics of Eglot's inlay hints
Instead of deleting inlay hints instantly as soon as the affected
changes, make hint overlays span one character (instead of being
length 0). Give the overlays an "evaporate" property.
Given an inlay hints at position POS, its attached to [POS, POS+1] if
it's kind=1 (usually type hints) and [POS-1, POS] otherwise. For
kind=1 hints, the 'cursor position of the first such overlay is also
tweaked, so that's it's less akward to edit around it.
* lisp/progmodes/eglot.el (eglot--before-change): Don't delete hints
here.
(eglot--update-hints-1): Rework.
Stefan Monnier [Sat, 21 Jan 2023 13:51:54 +0000 (08:51 -0500)]
(textsec-bidi-controls-suspicious-p): Minor tweak
* lisp/international/textsec.el (textsec-bidi-controls-suspicious-p):
Don't assume point-min==1 (and point-min is marginally more
efficient, to boot).
Stefan Monnier [Sat, 21 Jan 2023 13:49:48 +0000 (08:49 -0500)]
* lisp/frame.el (handle-move-frame): Fix corner case error
Eli Zaretskii [Sun, 19 Mar 2023 18:44:51 +0000 (20:44 +0200)]
Protect against too large size of 'recent-keys' vector
* src/keyboard.c (MAX_NUM_RECENT_KEYS): New macro.
(Flossage_size): Don't allow specifying too large lossage-size.
Fix data types. (Bug#62277)
Michael Albinus [Sun, 19 Mar 2023 12:11:06 +0000 (13:11 +0100)]
Rename tramp-use-ssh-controlmaster-options to tramp-use-connection-share
* doc/misc/tramp.texi (Ssh setup): Use tramp-use-connection-share.
Describe its settings for PuTTY.
(Remote processes): Use tramp-use-connection-share.
* etc/NEWS: Renamed user option tramp-use-connection-share.
* lisp/net/tramp-integration.el
(tramp-compile-disable-ssh-controlmaster-options):
Use `tramp-use-connection-share'.
* lisp/net/tramp-sh.el (tramp-use-connection-share):
Rename from `tramp-use-ssh-controlmaster-options'. Make it a
defvaralias to `tramp-use-ssh-controlmaster-options'.
(tramp-ssh-controlmaster-options): Adapt docstring.
(tramp-methods) <plink, plinkx, pscp, psftp>: Adapt.
(tramp-ssh-controlmaster-options): Add plink implementation.
Michael Albinus [Sun, 19 Mar 2023 08:37:35 +0000 (09:37 +0100)]
* lisp/net/tramp.el (tramp-yn-prompt-regexp): Fix regexp.
Eli Zaretskii [Sun, 19 Mar 2023 06:09:33 +0000 (08:09 +0200)]
; Remove 'build-module' and 'html-manual' directories from 'admin'
These files were temporarily in the repository and are
no longer needed, once they fulfilled their job.
Eli Zaretskii [Sun, 19 Mar 2023 05:57:40 +0000 (07:57 +0200)]
Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/emacs into emacs-29
Jim Porter [Sun, 12 Mar 2023 07:53:34 +0000 (23:53 -0800)]
Don't over-normalize file names starting with "~" in Eshell
Previously, this would call 'expand-file-name' on the file name, but
that normalizes the value, turning something like "~/." into
"/home/user". As a result, Pcomplete didn't work for dotfiles after
"~/" (bug#28064).
* lisp/eshell/em-dirs.el (eshell-expand-user-reference): New
function...
(eshell-expand-user-reference): ... use it.
Kyle Meyer [Sun, 19 Mar 2023 01:41:22 +0000 (21:41 -0400)]
Update to Org 9.6.1-48-g92471e
Yuan Fu [Sat, 18 Mar 2023 21:13:31 +0000 (14:13 -0700)]
; * admin/notes/tree-sitter/starter-guide: Update starter-guide.
Eli Zaretskii [Sat, 18 Mar 2023 15:14:44 +0000 (17:14 +0200)]
Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/emacs into emacs-29
Gregory Heytings [Sat, 18 Mar 2023 15:04:26 +0000 (15:04 +0000)]
; * lisp/nxml/xmltok.el (xmltok-scan-attributes): Fix last change
Eli Zaretskii [Sat, 18 Mar 2023 13:54:35 +0000 (15:54 +0200)]
; Minor copyedits of recent changes in ELisp reference manual
* doc/lispref/keymaps.texi (Changing Key Bindings): Fix wording
and markup.
Eli Zaretskii [Sat, 18 Mar 2023 13:46:05 +0000 (15:46 +0200)]
; Minor fixes in recent Eglot changes
* doc/misc/eglot.texi (Project-specific configuration): Fix
whitespace.
* lisp/progmodes/eglot.el (eglot-diagnostics-map): Doc fix.
Eli Zaretskii [Sat, 18 Mar 2023 13:41:55 +0000 (15:41 +0200)]
; * doc/misc/eglot.texi (Eglot Commands): Improve indexing.
João Távora [Sat, 18 Mar 2023 12:43:31 +0000 (12:43 +0000)]
; Again correct node reference casing in doc/misc/eglot.texi
Emacs's info-generating Texinfo incantation seems to be case
insensitive, but others -- like Eglot's HTML manual generation -- is
case sensitive.
* doc/misc/eglot.texi (Eglot Features): Fix.
João Távora [Sat, 18 Mar 2023 12:25:52 +0000 (12:25 +0000)]
; Remove overly verbose commentary
* lisp/progmodes/eglot.el (eglot--connect): Remove overly verbose
commentary.
João Távora [Sat, 18 Mar 2023 12:28:22 +0000 (12:28 +0000)]
Merge confusing duplicate sections on commands in Eglot manual
Also describe eglot-diagnostics-map.
* doc/misc/eglot.texi (Eglot Features): Don't describe commands here.
(Eglot Commands): Describe commands here.
João Távora [Fri, 17 Mar 2023 22:37:27 +0000 (22:37 +0000)]
Don't take over mouse-1 binding on Eglot diagnostics (bug#62157)
It's better to give the user a variable to allow the overlay keymap to
be customized.
* lisp/progmodes/eglot.el (eglot--mouse-call): Accept second arg.
(eglot--mode-line-props): Adapt call to eglot--mouse-call
(eglot-diagnostics-map): New variable.
(eglot-code-actions-at-mouse): New command.
João Távora [Fri, 17 Mar 2023 22:33:46 +0000 (22:33 +0000)]
; Prefer "language server" to "LSP server" in Eglot manual
* eglot.texi (Quick Start, Customizing Eglot)
(Project-specific configuration)
(Troubleshooting Eglot): LSP server -> language server.
Michael Albinus [Sat, 18 Mar 2023 12:13:56 +0000 (13:13 +0100)]
* lisp/progmodes/eglot.el (eglot--connect): Improve Tramp workaround.
Michael Albinus [Sat, 18 Mar 2023 11:54:51 +0000 (12:54 +0100)]
Prefix Tramp internal process properties with "tramp-".
* lisp/net/tramp.el (tramp-get-process, tramp-message)
(tramp-handle-make-process, tramp-handle-file-notify-valid-p)
(tramp-process-actions, tramp-accept-process-output)
(tramp-process-sentinel, tramp-read-passwd)
(tramp-interrupt-process, tramp-signal-process):
* lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
* lisp/net/tramp-cmds.el (tramp-cleanup-connection):
* lisp/net/tramp-crypt.el (tramp-crypt-maybe-open-connection):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch)
(tramp-gvfs-monitor-process-filter)
(tramp-gvfs-maybe-open-connection):
* lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
(tramp-sh-handle-file-notify-add-watch)
(tramp-sh-gio-monitor-process-filter)
(tramp-sh-inotifywait-process-filter)
(tramp-barf-if-no-shell-prompt, tramp-maybe-open-connection):
* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
(tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl)
(tramp-smb-maybe-open-connection):
* lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection)
(tramp-sudoedit-send-command): Prefix internal process properties
with "tramp-".
Gregory Heytings [Sat, 18 Mar 2023 10:49:29 +0000 (10:49 +0000)]
Avoid slowdowns in xmltok-scan-attributes
* lisp/nxml/xmltok.el (xmltok-scan-attributes): Limit the search
to 10000 characters, to avoid slowdowns due to the quadratic
complexity of the regexp. Suggested by Stefan Monnier.
Eli Zaretskii [Sat, 18 Mar 2023 10:35:10 +0000 (12:35 +0200)]
; * test/lisp/abbrev-tests.el (abbrev--possibly-save-test): Fix test.
Gregory Heytings [Sat, 18 Mar 2023 10:31:36 +0000 (10:31 +0000)]
; * admin/git-bisect-start: Update failing commits
Alan Mackenzie [Sat, 18 Mar 2023 10:12:24 +0000 (10:12 +0000)]
CC Mode: Eliminate duplicate function c-list-of-strings
Replace it with the existing c-string-list-p. Also put an autoload cookie in
front of c-string-list-p so that it will not be signalled as undefined by
loaddefs.el.
lisp/progmodes/cc-vars.el (c-string-list-p): Make this autoload.
(c-list-of-strings): Remove.
(c-font-lock-extra-types, c++-font-lock-extra-types)
(objc-font-lock-extra-types, java-font-lock-extra-types)
(idl-font-lock-extra-types, pike-font-lock-extra-types): In the autoload
cookies, replace c-list-of-strings with c-string-list-p.
Alan Mackenzie [Mon, 13 Mar 2023 16:42:02 +0000 (16:42 +0000)]
CC Mode: Allow lists of strings as safe values for *-font-lock-extra-types
* lisp/progmodes/cc-vars.el (c-list-of-strings): New function.
(c-font-lock-extra-types, c++-font-lock-extra-types)
(objc-font-lock-extra-types, java-font-lock-extra-types)
(idl-font-lock-extra-types, pike-font-lock-extra-types): Add a :safe entry
into each of thes defcustoms for c-list-of-string.
(Top level): Add an autoload entry for each of the above.
Alan Mackenzie [Sat, 18 Mar 2023 10:12:24 +0000 (10:12 +0000)]
CC Mode: Eliminate duplicate function c-list-of-strings
Replace it with the existing c-string-list-p. Also put an autoload cookie in
front of c-string-list-p so that it will not be signalled as undefined by
loaddefs.el.
lisp/progmodes/cc-vars.el (c-string-list-p): Make this autoload.
(c-list-of-strings): Remove.
(c-font-lock-extra-types, c++-font-lock-extra-types)
(objc-font-lock-extra-types, java-font-lock-extra-types)
(idl-font-lock-extra-types, pike-font-lock-extra-types): In the autoload
cookies, replace c-list-of-strings with c-string-list-p.
Robert Pluim [Sat, 18 Mar 2023 09:33:39 +0000 (10:33 +0100)]
Add tests for Bug#62207
* test/src/keymap-tests.el (keymap-unset-test-remove-and-inheritance):
New test.
Eli Zaretskii [Sat, 18 Mar 2023 07:12:12 +0000 (09:12 +0200)]
; Fix 'make-obsolete-variable' forms
* lisp/url/url-misc.el (url-misc-rlogin-obsolete-warned-once):
* lisp/url/url-gw.el (url-gw-rlogin-obsolete-warned-once): Fix
make-obsolete-variable form. (Bug#62248)
Eli Zaretskii [Sat, 18 Mar 2023 06:32:20 +0000 (08:32 +0200)]
; * lisp/find-dired.el (find-gnu-find-p): Doc fix.
Manuel Giraud [Fri, 10 Mar 2023 20:54:00 +0000 (21:54 +0100)]
Fix 'find-ls-option-default-ls' for BSD/MacOS (bug#62096)
* lisp/find-dired.el (find-gnu-find-p): New variable to determine
if "find" is a GNU find.
(find-ls-option-default-ls): Use 'find-gnu-find-p' and adapt to a
value that works with the default "find" on *BSD and Darwin/MacOS.
Tested on OpenBSD and MacOS.
Manuel Giraud [Fri, 10 Mar 2023 20:54:00 +0000 (21:54 +0100)]
Fix 'find-ls-option-default-ls' for BSD/MacOS (bug#62096)
* lisp/find-dired.el (find-ls-option-default-ls): Adapt to
a value that works with the default "find" on *BSD and
Darwin/MacOS. Tested on OpenBSD and MacOS. Do not merge
to master.
Arash Esbati [Fri, 17 Mar 2023 13:25:37 +0000 (14:25 +0100)]
; * lisp/subr.el (setq-local): Add missing period (bug#62242).
João Távora [Fri, 17 Mar 2023 14:21:11 +0000 (14:21 +0000)]
; Correct last commit, downcase node reference
* doc/misc/eglot.texi (Troubleshooting Eglot): Downcase node reference
João Távora [Fri, 17 Mar 2023 14:07:36 +0000 (14:07 +0000)]
Enhance section about troubleshooting in Eglot manual.
* doc/misc/eglot.texi (Troubleshooting Eglot): Parially rewrite.
João Távora [Fri, 17 Mar 2023 11:47:02 +0000 (11:47 +0000)]
Fix Eglot's snippet insertion to follow the manual
The manual states that YASnippet must only be installed to be useful.
Before this change, it would only work if the user happened to have
manually activated it before with 'yas-global-mode' or somesuch.
This makes Eglot's Yasnippet-activating behaviour similar to its
Flymake-activating behaviour.
* lisp/progmodes/eglot.el (eglot-client-capabilities): Consult
eglot--stay-out-of.
(eglot--snippet-expansion-fn): Turn on yas-minor-mod eon demand.
(eglot-completion-at-point): Simplify.
Filipp Gunbin [Wed, 15 Mar 2023 18:04:26 +0000 (21:04 +0300)]
Reset abbrevs-changed after saving abbrevs (bug#62208)
* lisp/abbrev.el (abbrev--possibly-save): Reset abbrevs-changed after
saving abbrevs.
* test/lisp/abbrev-tests.el (abbrev--possibly-save-test): New test.
Robert Pluim [Fri, 17 Mar 2023 13:25:39 +0000 (14:25 +0100)]
; Fix markup in previous change
Robert Pluim [Fri, 17 Mar 2023 13:16:00 +0000 (14:16 +0100)]
Document `keymap-unset' in lispref
* doc/lispref/keymaps.texi (Changing Key Bindings): Document
keymap-unset.
Robert Pluim [Fri, 17 Mar 2023 08:50:38 +0000 (09:50 +0100)]
Don't add a key binding when REMOVE is non-nil
* src/keymap.c (store_in_keymap): Don't add a nil keybinding if we've
been asked to remove a non-existent binding. (Bug#62207)
Mattias Engdegård [Fri, 17 Mar 2023 11:13:27 +0000 (12:13 +0100)]
* lisp/subr.el (string-prefix-p, string-suffix-p): Not pure.
The `ignore-case` arguments prevent these functions from being pure.
Eli Zaretskii [Fri, 17 Mar 2023 08:14:41 +0000 (10:14 +0200)]
Fix the documentation of various aspects of adding Xref history
* lisp/progmodes/xref.el (xref-marker-ring-length)
(xref-set-marker-ring-length):
* lisp/progmodes/etags.el (tags-location-ring-length)
(find-tag-marker-ring): Add doc strings saying the variables are
unused.
* etc/NEWS: Enhance the description of the change which made Xref
marker stack unlimited in its length.
* doc/emacs/maintaining.texi (Looking Up Identifiers): Add back
text lost when xref forward history was added in bug#38797.
Explain the difference between 'C-M-,' and 'M-.'. Improve
wording (Bug#62229)
Wilhelm H Kirschbaum [Thu, 16 Mar 2023 20:11:59 +0000 (22:11 +0200)]
; Fix source file headers for some test files (bug#62227)
* test/lisp/progmodes/elixir-ts-mode-tests.el: Fix
source file header.
* test/lisp/progmodes/heex-ts-mode-tests.el: Add source
file header and footer.
Jim Porter [Sun, 29 Jan 2023 01:04:11 +0000 (17:04 -0800)]
Simplify usage of 'while' forms in Eshell's iterative evaluation
Now, 'eshell-do-eval' rewrites 'while' forms to let-bind variables for
the command and test bodies. This means that external code, such as
command rewriting hooks, no longer has to worry about this, making it
easier to pass "normal" Lisp forms to 'eshell-do-eval' (bug#61954).
* lisp/eshell/esh-cmd.el (eshell-command-body, eshell-test-body): No
longer used outside of 'eshell-do-eval', so rename to...
(eshell--command-body, eshell--test-body): ... these.
(Command evaluation macros): Remove obsolete description about 'if'
and 'while' forms.
(eshell-rewrite-for-command, eshell-structure-basic-command): Remove
'eshell-command-body' and 'eshell-test-body'.
(eshell-do-eval): Reimplement handling of 'while' forms.
Jim Porter [Sat, 28 Jan 2023 23:06:31 +0000 (15:06 -0800)]
Simplify how Eshell's iterative evaluation handles 'if' forms
The previous implementation used 'eshell-test-body' and
'eshell-command-body' to track the condition and the then/else forms,
but those special variables are only needed for looping. 'if' only
evaluates each form once at most (bug#61954).
* lisp/eshell/esh-cmd.el (Command evaluation macros): Remove 'if' from
the notes about 'eshell-test-body' and 'eshell-command-body'.
(eshell-do-eval): Reimplement evaluation of 'if' forms.
(eshell-eval-command): Don't let-bind 'eshell-command-body' and
'eshell-test-body'; they're no longer needed here.
Jim Porter [Fri, 27 Jan 2023 07:18:42 +0000 (23:18 -0800)]
Simplify iteration in Eshell for loops
The previous code fixed an issue in Eshell's iterative evaluation
where deferred commands caused an infinite loop (see bug#12571).
However, with the fix to unwinding let forms in 'eshell-do-eval' (see
bug#59469), we can just write this code as we normally would
(bug#61954).
* lisp/eshell/esh-cmd.el (eshell-rewrite-for-command): Simplify.
Eli Zaretskii [Thu, 16 Mar 2023 20:05:07 +0000 (22:05 +0200)]
; Minor wording fix in ELisp reference manual
* doc/lispref/objects.texi (General Escape Syntax): More accurate
wording. Avoid non-ASCII characters in Texinfo. (Bug#62224)
kobarity [Sun, 12 Mar 2023 08:05:54 +0000 (17:05 +0900)]
Fix python-fill-paragraph problems on filling strings (bug#62142)
* lisp/progmodes/python.el (python-syntax--context-compiler-macro)
(python-syntax-context): Add single-quoted-string and
triple-quoted-string as TYPE argument.
(python-info-triple-quoted-string-p): New helper function.
(python-fill-paragraph)
(python-fill-string): Use it.
* test/lisp/progmodes/python-tests.el (python-syntax-context-1)
(python-fill-paragraph-single-quoted-string-1)
(python-fill-paragraph-single-quoted-string-2)
(python-fill-paragraph-triple-quoted-string-1)
(python-info-triple-quoted-string-p-1)
(python-info-triple-quoted-string-p-2)
(python-info-triple-quoted-string-p-3): New tests.
João Távora [Thu, 16 Mar 2023 14:05:42 +0000 (14:05 +0000)]
Also exempt eglot-inlay-hints-mode from desktop.el's fumblings
Reported in https://github.com/joaotavora/eglot/discussions/1183.
* lisp/progmodes/eglot.el (desktop): Also exempt
eglot-inlay-hints-mode from desktop.el fumblings.
Stefan Kangas [Thu, 16 Mar 2023 13:32:44 +0000 (14:32 +0100)]
; Add WebDAV entry to index in Tramp manual
* doc/misc/tramp.texi (GVFS-based methods): Improve indexing.
Stefan Kangas [Thu, 16 Mar 2023 13:20:15 +0000 (14:20 +0100)]
Refer to EWW instead of w3 and w3m
* doc/misc/idlwave.texi (Help with HTML Documentation): Refer to EWW
instead of w3 and w3m.
Michael Albinus [Thu, 16 Mar 2023 11:41:13 +0000 (12:41 +0100)]
Fix regression in Tramp (bug#62194)
* lisp/net/tramp.el (tramp-handle-make-process):
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
(tramp-sh-handle-file-notify-add-watch)
(tramp-maybe-open-connection): Don't set process property
`shared-socket'. (Bug#62194)
João Távora [Thu, 16 Mar 2023 10:41:53 +0000 (10:41 +0000)]
Emphasize emacs-29-specificity in this version of lisp/progmodes/eglot.el
Do not merge to master.
Before working on bugfixes to Eglot in its non-ELPA form delivered
with Emacs 29, it's important to distinguish between this emacs-29
version and the one in master, which will also get the bugfixes (via
routine gitmerge.el) but with a bumped version number.
* lisp/progmodes/eglot.el (Version): Emphasize Emacs 29, but hint this
is 1.12 + something.
(Package-Requires): Remove. Everything required is already in Emacs
29.
João Távora [Thu, 16 Mar 2023 10:45:25 +0000 (10:45 +0000)]
Fix Eglot's command generation for code actions
The user command generated by eglot--code-action should always call
eglot-code-actions with a INTERACTIVE set to t.
Reported in https://github.com/joaotavora/eglot/issues/1132.
* lisp/progmodes/eglot.el (eglot--code-action): Pass INTERACTIVE=t to
eglot-code-action call.
Wilhelm H Kirschbaum [Mon, 13 Mar 2023 19:47:50 +0000 (21:47 +0200)]
Fix elixir-ts-mode.elc warning (bug#62155)
* lisp/progmodes/elixir-ts-mode.el: Only require heex-ts-mode once
elixir-ts-mode loads to avoid calling (treesit-ready-p 'heex)
during byte-compilation.
USAMI Kenta [Wed, 8 Mar 2023 12:13:37 +0000 (21:13 +0900)]
Fix quoting of font-family in 'hfy-family'
Running "M-x htmlfontify-buffer" in one buffer, the exported HTML contains
lines like:
body, pre { text-decoration: none; font-family: Migu 2M; font-stretch:
normal; font-weight: 500; font-style: normal; color: #ffffff;
background: #000000; font-size: 15pt; }
Standards-compliant web browsers should ignore this font-family.
MDN Web Docs says:
https://developer.mozilla.org/en-US/docs/Web/CSS/font-family
Valid family names
Font family names must either be given quoted as strings, or unquoted as
a sequence of one or more identifiers. This means that punctuation
characters and digits at the start of each token must be escaped in
unquoted font family names.
It is a good practice to quote font family names that contain white
space, digits, or punctuation characters other than hyphens.
An unquoted font-family is valid as long as it doesn't start with a digit,
but MDN Web Docs also says:
The following example is technically valid but is not recommended:
font-family: Gill Sans Extrabold, sans-serif;
So it makes sense to quote all font-family.
* lisp/htmlfontify.el (hfy-family): Quote 'font-family'. (Bug#62054)
João Távora [Wed, 15 Mar 2023 23:59:01 +0000 (23:59 +0000)]
; Tweak doc/misc/eglot.texi
* doc/misc/eglot.texi (Advanced server configuration): Minor
tweaks.
Michael Eliachevitch [Wed, 15 Mar 2023 23:49:51 +0000 (23:49 +0000)]
Document how to construct JSONRPC arrays in Eglot manual
Many language server configuration options are of the JSON array
datatype, for example argument lists for executables, but there wasn't
any example of that in the Eglot manual.
* doc/misc/eglot.texi (User-specific configuration)
(User-specific configuration): Tweaks.
(JSONRPC objects in Elisp): Mention JSON arrays. Tweak example.
Copyright-paperwork-exempt: Yes
Michael Albinus [Wed, 15 Mar 2023 17:01:48 +0000 (18:01 +0100)]
Minor Tramp cleanup
* lisp/net/tramp-sh.el (tramp-run-test): Add VEC argument.
(tramp-sh-handle-file-executable-p)
(tramp-sh-handle-file-readable-p)
(tramp-sh-handle-file-directory-p)
(tramp-sh-handle-file-writable-p): Adapt callees.
Michael Albinus [Wed, 15 Mar 2023 15:52:22 +0000 (16:52 +0100)]
* test/infra/Dockerfile.emba: Use debian:bullseye.
Philip Kaludercic [Wed, 15 Mar 2023 15:47:48 +0000 (16:47 +0100)]
Always display the "Archive" column in the package list
* lisp/emacs-lisp/package.el (package-menu-mode): Always display
column.
(package-menu--print-info-simple): Always provide column information.
Since NonGNU ELPA has been added to the default value of
'package-archives', this condition is practically never satisfied,
meaning the code can be simplified.
Andrea Corallo [Wed, 15 Mar 2023 15:18:04 +0000 (16:18 +0100)]
* configure.ac: Fix native comp compatibility check (bug#61960)
Michael Albinus [Wed, 15 Mar 2023 12:05:19 +0000 (13:05 +0100)]
* test/infra/Dockerfile.emba: Install clangd.
Mattias Engdegård [Wed, 15 Mar 2023 11:43:18 +0000 (12:43 +0100)]
; * lisp/progmodes/elixir-ts-mode.el: remove duplicates from regexp
João Távora [Wed, 15 Mar 2023 10:27:24 +0000 (10:27 +0000)]
Unbreak Eglot (as a :core ELPA package) on Emacs 26.3
Because of the lack of regular automated testing on a CI system, many
recent developments in and outside Eglot had wrecked this
compatibility.
The GitHub CI available at https://github.com/joaotavora/eglot/actions
can be used to run this combination of eglot.el + eglot-tests.el on
26.3, 27.2 and 28.2.
* etc/EGLOT-NEWS: Mention new version.
* lisp/progmodes/eglot.el (eglot--reporter-update): New
compatibility shim.
(eglot-handle-notification $/progress): Use it.
(eglot-handle-notification textDocument/publishDiagnostics): Use
two-arg assoc-delete-all.
(Version): Bump to 1.13.
* test/lisp/progmodes/eglot-tests.el
(Commentary): Tweak.
(tramp): Tweak require;
(eglot-test-diagnostic-tags-unnecessary-code): Use
jsonrpc--encode.
(eglot--call-with-tramp-test): Adjust dependency on
ert-remote-temporary-file-directory.
(eglot-test-rust-on-type-formatting)
(eglot-test-project-wide-diagnostics-rust-analyzer): Wait longer.
Philip Kaludercic [Wed, 15 Mar 2023 08:54:12 +0000 (09:54 +0100)]
Remove 'package-vc--query-spec'
* lisp/emacs-lisp/package-vc.el (require): Do not load `inline' during
compilation.
(package-vc--query-spec): Remove function.
(package-vc--clone): Do not call 'package-vc--query-spec'.
Philip Kaludercic [Wed, 15 Mar 2023 09:05:39 +0000 (10:05 +0100)]
Do not store :lisp-dir in package descriptors
* lisp/emacs-lisp/package-vc.el (package-vc--main-file)
(package-vc--unpack-1): Query 'pkg-spec' instead of
'package-desc-extras'.
(package-vc--unpack): Do not update 'package-desc-extras'.
This simplification is possible due to the change in
2718bbb3bc, since
we now ensure that package specifications are not lost. They are
either provided by a package archive or stored in
'package-vc-selected-packages'.
Philip Kaludercic [Wed, 15 Mar 2023 08:51:14 +0000 (09:51 +0100)]
Use 'package-vc-selected-packages' to store package specs
* doc/emacs/package.texi (Fetching Package Sources): Do not promote
the usage of 'package-vc-selected-packages' to install packages.
* lisp/emacs-lisp/package-vc.el (package-vc-selected-packages): Remove
custom setter and change docstring according to these changes.
(package-vc--desc->spec): Consult 'package-vc-selected-packages' for
package specifications.
(package-vc--unpack): Add unknown package specifications to
'package-vc-selected-packages'
Stefan Kangas [Wed, 15 Mar 2023 04:12:01 +0000 (05:12 +0100)]
; Auto-commit of loaddefs files.
Stefan Kangas [Wed, 15 Mar 2023 04:11:55 +0000 (05:11 +0100)]
; Auto-commit of loaddefs files.
João Távora [Wed, 15 Mar 2023 00:36:26 +0000 (00:36 +0000)]
More fixes to Eglot tests
* test/lisp/progmodes/eglot-tests.el
(eglot-test-project-wide-diagnostics-rust-analyzer): Make even more
robust.
(eglot--wait-for): flush-standard-output doesn't exist in older
Emacsen.
(eglot-test-basic-diagnostics): Increase timeout.
João Távora [Tue, 14 Mar 2023 19:50:48 +0000 (19:50 +0000)]
Improve debug output of Eglot tests
* test/lisp/progmodes/eglot-tests.el
(eglot--test-message): New helper.
(eglot--call-with-fixture): Use it.
(eglot--cleanup-after-test): Use it.
(eglot--wait-for): Use it. Clean mistaken docstring.
João Távora [Tue, 14 Mar 2023 19:44:45 +0000 (19:44 +0000)]
Robustify some Eglot tests involving rust-analyzer
* eglot-tests.el (eglot-test-diagnostics-tags-unnecessary-code): Use
clangd instead of rust-analyzer.
(eglot-test-project-wide-diagnostics-rust-analyzer): Don't count
diagnostics, just check they come from unvisited file.
(eglot-test-rust-analyzer-watches-files): Wait a bit more time..
João Távora [Tue, 14 Mar 2023 19:43:04 +0000 (19:43 +0000)]
Check before using bleeding edge ERT sym in Eglot tests
Else, these tests won't run on Emacs versions that Eglot runs on, like
26.3.
* test/lisp/progmodes/eglot-tests.el
(eglot--call-with-tramp-test): check for
ert-remote-temporary-file-directory before using.
João Távora [Tue, 14 Mar 2023 19:07:23 +0000 (19:07 +0000)]
Better jsonrpc.el workaround for debug-on-error check
Some extensions, notably ert.el, set `debug-on-error' to non-nil,
which makes it hard to test the behaviour catching of the Elisp
error when processing a request and replying to the endpoint with
an JSONRPC-error.
The previous workaround relied on requiring lisp/emacs-lisp/ert.el in
lisp/jsonrpc.el, which really doesn't make sense.
This is better. For the single test of that behaviour, set a new
variable, jsonrpc-inhibit-debug-on-error.
Not only is this cleaner, it allows us to use ert.el's useful
debug-on-error setting.
* lisp/jsonrpc.el (ert): Don't require it.
(jsonrpc-inhibit-debug-on-error): New variable.
(jsonrpc-connection-receive): Use it.
(Package-Requires): Bump to 1.0.17
* test/lisp/jsonrpc-tests.el (signals-an--32603-JSONRPC-error):
Bind jsonrpc-inhibit-debug-on-error.
João Távora [Tue, 14 Mar 2023 18:14:48 +0000 (18:14 +0000)]
Merge from origin/emacs-29
4b6f2a7028b * lisp/progmodes/xref.el: Bump the version.
24c8b146bbc * lisp/progmodes/xref.el (xref--xref-buffer-mode): Split ...
46f9e53c3da Fix import of keys in buffer created by epa-search-keys
36ade0704e1 Fix connection-local variables settings
e759905d2e0 ; Minor copyedits in EGLOT-NEWS
ba22a2c346b Bump Eglot version to 1.12
54e123a5055 Update Eglot's manual about eglot-workspace-configuration
812597f864c ; * lisp/novice.el (disabled-command-function): Add note ...
4a603c98499 Amend last Eglot commit (bug#62065)
b916ec88b2f Make eglot-ensure's post-command-hook run a bit later (bu...
1c05175c21a Fix display of disabled-command help text
3ce37db9882 Remove mention of old dotted-list reader quirk from manual
42335c2c1f1 Fix value history shown for 'gc-cons-percentage'
fffbce29349 TRework fix for bug#62106
8bc12a27362 ; * etc/NEWS: Fix last change.
2ac068d294e ; Remove 'ns-popup-font-panel' from documentation
5bc32d008fb Add missing indentation rule for rust-ts-mode (Bug#62109)
0404924930d ; One more improvement to ELisp "internals" appendix.
c857775ca61 Fix bug#62106
0fedbfa6a9d ; Minor improvement of documentation of GC thresholds
b0b24ad2fc5 Add missing rust-ts-mode highlight query for scoped_type_...
c0cf69f7a17 Make "case" keyword a dedenter in Python
db178517ce7 ; * lisp/arc-mode.el (w32-get-console-codepage): Declare.
157a91b54be Fix decoding non-ASCII file names in zip archives on MS-W...
4803f972047 Fix copying binary files from zip archives
679f528b953 Skip ruby-ts-syntax-propertize-symbol unless treesitter i...
081cc7aa8e0 ; * doc/misc/eglot.texi (Project-specific configuration):...
1de513a29fa Fix enums and unions appearing as structs in c-ts-base-mo...
ecdfd584a52 ruby-ts-mode: Fine-tune s-p-f on symbols (bug#62086)
29228e24f20 python-info-dedenter-opening-block-positions: Fix to supp...
01b65d442ad Autoload Eglot helper funtion eglot--debbugs-or-github-bu...
50a3559c5a7 Add chapter on advanced server configuration to Eglot manual
2e7460c2315 ; * lisp/progmodes/java-ts-mode.el (treesit-query-capture...
255eeee0e06 java-ts-mode: detect if text_block is supported.
6fe9075ff38 Revert workaround introduced in Bug#56271
f175141aead Fix searching for end of string in python-nav-end-of-stat...
# Conflicts:
# etc/NEWS
Michael Albinus [Tue, 14 Mar 2023 10:39:32 +0000 (11:39 +0100)]
; * etc/NEWS: Fix typos.
Michael Albinus [Tue, 14 Mar 2023 10:39:16 +0000 (11:39 +0100)]
Fix Tramp tests
* test/lisp/net/tramp-tests.el (tramp-test26-file-name-completion):
Fix test.
(tramp-test45-asynchronous-requests): Mark it :unstable.
Michael Albinus [Tue, 14 Mar 2023 10:38:39 +0000 (11:38 +0100)]
Improve Tramp processes to accept output over the same socket
* lisp/net/tramp.el (tramp-accept-process-output): Don't use TIMEOUT
anymore, default it to 0. When the connection uses a shared
socket possibly, accept also the output from other processes over
the same connection. (Bug#61350)
(tramp-handle-file-notify-rm-watch, tramp-action-process-alive)
(tramp-action-out-of-band, tramp-process-one-action)
(tramp-interrupt-process):
* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
* lisp/net/tramp-smb.el (tramp-smb-action-get-acl)
(tramp-smb-action-set-acl, tramp-smb-wait-for-output):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-action-sudo):
Adapt callees.
* lisp/net/tramp.el (tramp-handle-make-process):
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
(tramp-sh-handle-file-notify-add-watch)
(tramp-maybe-open-connection): Set `shared-socket' property.
Robert Pluim [Mon, 13 Mar 2023 08:25:26 +0000 (09:25 +0100)]
* lisp/server.el (server-eval-at): Improve docstring
Juri Linkov [Mon, 13 Mar 2023 18:21:47 +0000 (20:21 +0200)]
* lisp/progmodes/xref.el: Bump the version.